/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package autopecas.Interface;

import autopecas.ClasseBasica.Cliente;
import autopecas.Exception.ClienteException;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author NeGo
 */
public interface InterfaceCliente {

    /**
     * Metodo para Cadastrar dados do Cliente inserindo no banco de dados .
     *
     * @param texto texto para cadastrar
     * @return true se a strong so conter cadastro de Nome e Cpf, false se
     * conter outro dado
     */
    public void cadastrar(Cliente cliente) throws SQLException, Exception, ClienteException;

    /**
     * Metodo para atualizacao dados do Cliente buscando pelo cpf e alterando no
     * banco de dados .
     *
     * @param texto texto para atualizar
     * @return true se a strong so conter atualizar peo Cpf, false se nao conter
     * cpf nao será realizado
     * @throws java.sql.SQLException - Erros retomados pelo banco
     */
    public void atualizar(Cliente cliente) throws SQLException, Exception, ClienteException;

    /**
     * Metodo para Remover dados do Cliente retirando do banco de dados onde
     * também é necessario a exclusao do veiculo .
     *
     * @param texto texto para Remover
     * @return true se a strong se remover o cliente, false se nao ocorrer a
     * @throws java.sql.SQLException - Erros retomados pelo banco
     * remocao dado
     */
    public void remover(Cliente cliente) throws SQLException, Exception, ClienteException;

    /**
     * Metodo para Listar dados do Cliente buscando no banco de dados .
     *
     * @param texto texto para Listar as informacoes do cliente.
     * @return true se a strong so conter a lista dos dados, false se nao conter
     * outro dado
     * @throws java.sql.SQLException - Erros retomados pelo banco
     */
    ArrayList<Cliente> Listar() throws SQLException, Exception, ClienteException;

    /**
     * Metodo para Consultar dados do Cliente da qual realiza a busca pelo cpf
     * do cliente no banco de dados .
     *
     * @param texto texto para Consultar
     * @return true se a strong se encontrar o cpf do cliente , false se nao
     * 
     * conter outro dado
     * @throws java.sql.SQLException - Erros retomados pelo banco
     */
    ArrayList<Cliente> Consultar(Integer cpf) throws SQLException, Exception, ClienteException;
}
